package clients

// 此文件：实现Vblog的客户端 (也就是：通过提供的是一个 lib(SDK) ---> 访问后端的 restful api)

import (
	"gitee.com/liuxiaowei123/vblog-01/vblog-01/vblog/blog"
	"gitee.com/liuxiaowei123/vblog-01/vblog-01/vblog/token"
	"github.com/infraboard/mcube/client/rest"
)

// 实现Vblog的客户端 (也就是：通过lib(SDK) ---> 访问后端的restful api)
// 通常是通过 ui  http ---> 访问后端的restful api，而这里是通过SDK的方式
// 调用的方式：Client.Blog().CreateBlog(xxxx) 通过SDK的方式，我们不需要知道url是什么、参数是什么、返回什么
type Client struct {
	// 专门为restful api 定制开发的 http client
	// c.POST('').Para(xxx).Do().Into(xxx) 表示调用语法，token.go中有用到
	c *rest.RESTClient
}

func NewClient() *Client {
	return &Client{
		c: rest.NewRESTClient().SetBaseURL("http://127.0.0.1:7080/api/vblog/v1"),
	}
}

// blog service 的客户端调用接口
func (c *Client) Blog() blog.Service {
	return nil
}

// token service 的客户端调用接口
func (c *Client) Token() token.Service {
	//  NewClient()中已经定义好了baseurl=http://127.0.0.1:7080/api/vblog/v1,所以只需要+tokens
	return &TokenClient{c: c.c.Group("tokens")}
}
